Pythonにおいて、例外処理はプログラムの安定性を高めるために欠かせない機能です。

例外とは、プログラムが予期しない結果を返したときに発生するエラーのことです。例えば、0で割り算をしようとするとZeroDivisionErrorという例外が発生します。

このような例外を適切に処理することで、プログラムを強固にし、予期せぬエラーが発生してもプログラムを継続的に実行することができます。

Pythonでは、try, except, finallyというキーワードを使って例外処理を実装します。

try-except文

try-except文は、プログラムに例外が発生した場合に、その例外をキャッチして、適切な処理を行うために使われます。

try: #例外が発生する可能性のある処理 x = 5/0 except: #例外が発生した場合に実行する処理 print('例外が発生しました。')

この例では、tryブロックに0で割り算をしている処理を記述しています。この処理が実行されると、ZeroDivisionError例外が発生します。

exceptブロックには、例外が発生した場合に実行する処理を記述します。この例では、例外が発生すると「例外が発生しました。」と表示する処理を実行しています。

try-except文の例外処理の種類

上記の例のように、exceptブロックに例外処理を記述することができますが、具体的にどのような例外をキャッチするかを指定することもできます。

try: #例外が発生する可能性のある処理 x = 5/0 except ZeroDivisionError: #ZeroDivisionError例外が発生した場合に実行する処理 print('ゼロ割りエラーが発生しました。') except: #その他の例外が発生した場合に実行する処理 print('例外が発生しました。')

この例では、ZeroDivisionError例外が発生した場合には「ゼロ割りエラーが発生しました。」と表示し、それ以外の例外が発生した場合には「例外が発生しました。」と表示するようになっています。

finallyブロック

finallyブロックは、例外の発生に関わらず必ず実行される処理を記述するために使われます。例えば、ファイルを開いて処理を行った後に、必ずファイルを閉じる処理をfinallyブロックに記述することができます。

try: #例外が発生する可能性のある処理 x = 5/0 except ZeroDivisionError: #ZeroDivisionError例外が発生した場合に実行する処理 print('ゼロ割りエラーが発生しました。') except: #その他の例外が発生した場合に実行する処理 print('例外が発生しました。') finally: #必ず実行される処理 print('処理を終了します。')

この例では、finallyブロックに「処理を終了します。」と表示する処理を実装しています。このように、finallyブロックには例外に関係なく必ず実行される処理を記述することができます。

例外を発生させる

Pythonでは、raiseキーワードを使って意図的に例外を発生させることができます。raiseキーワードには、発生させたい例外の種類を指定することができます。

try: #例外が発生する可能性のある処理 x = input('数字を入力してください:') if not x.isdigit(): raise ValueError('数字以外が入力されました。') except ValueError as e: #ValueError例外が発生した場合に実行する処理 print(e) finally: #必ず実行される処理 print('処理を終了します。')

この例では、input関数でユーザーから数字を入力することを求めています。入力された値が数字でない場合には、ValueError例外を発生させ、exceptブロックで処理するようにしています。例外が発生した場合、そのメッセージを表示して処理を終了します。

以上がPythonにおける例外処理の基本的な使用方法です。例外処理を正しく実装することで、プログラムの安定性を高め、予期せぬエラーにも適切に対応することができます。

リンク

Exception handling (try, except, finally)[EN]